fn int_equal(vlocation1: *mut std::ffi::c_void, vlocation2: *mut std::ffi::c_void) -> i32 {
    let location1 = vlocation1 as *mut i32;
    let location2 = vlocation2 as *mut i32;
    if !location1.is_null() && !location2.is_null() {
        unsafe {
            return (*location1 == *location2) as i32;
        }
    }
    0
}
fn int_compare(vlocation1: *mut std::ffi::c_void, vlocation2: *mut std::ffi::c_void) -> i32 {
    let location1 = vlocation1 as *mut i32;
    let location2 = vlocation2 as *mut i32;
    unsafe {
        if *location1 < *location2 {
            return -1;
        } else if *location1 > *location2 {
            return 1;
        } else {
            return 0;
        }
    }
}
